package cn.piesat.mapper;

import cn.piesat.dto.PiesatMenuInfoDTO;
import cn.piesat.vo.menu.AddMenuVO;
import cn.piesat.vo.menu.MenuDetailVO;
import cn.piesat.vo.menu.UpdateMenuVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

/**
 * 菜单相关对象属性映射关系类
 *
 * @author xhl
 */
@Mapper
public interface MenuMapper {

    MenuMapper INSTANCE = Mappers.getMapper(MenuMapper.class);

    /**
     * 添加菜单参数对象 ------> 菜单信息实体类
     * @param addMenuVO 添加菜单参数对象
     * @return
     */
    PiesatMenuInfoDTO addMenuDtoToMenuDo(AddMenuVO addMenuVO);

    /**
     * 修改菜单参数对象 ------> 菜单信息实体类
     * @param updateMenuVO 修改菜单参数对象
     * @return
     */
    PiesatMenuInfoDTO updateMenuDtoToMenuDo(UpdateMenuVO updateMenuVO);

    /**
     * 菜单信息实体类 ------> 菜单信息详细信息展示类
     * @param piesatMenuInfoDTO 菜单信息实体类
     * @return
     */
    MenuDetailVO menuDoToMenuDetailVo(PiesatMenuInfoDTO piesatMenuInfoDTO);
}
